home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat3 / SCSL / slasdq.z / slasdq
Encoding:
Text File  |  2002-10-03  |  7.2 KB  |  199 lines

  1.  
  2.  
  3.  
  4. SSSSLLLLAAAASSSSDDDDQQQQ((((3333SSSS))))                                                          SSSSLLLLAAAASSSSDDDDQQQQ((((3333SSSS))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      SLASDQ - compute the singular value decomposition (SVD) of a real (upper
  10.      or lower) bidiagonal matrix with diagonal D and offdiagonal E,
  11.      accumulating the transformations if desired
  12.  
  13. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  14.      SUBROUTINE SLASDQ( UPLO, SQRE, N, NCVT, NRU, NCC, D, E, VT, LDVT, U, LDU,
  15.                         C, LDC, WORK, INFO )
  16.  
  17.          CHARACTER      UPLO
  18.  
  19.          INTEGER        INFO, LDC, LDU, LDVT, N, NCC, NCVT, NRU, SQRE
  20.  
  21.          REAL           C( LDC, * ), D( * ), E( * ), U( LDU, * ), VT( LDVT, *
  22.                         ), WORK( * )
  23.  
  24. IIIIMMMMPPPPLLLLEEEEMMMMEEEENNNNTTTTAAAATTTTIIIIOOOONNNN
  25.      These routines are part of the SCSL Scientific Library and can be loaded
  26.      using either the -lscs or the -lscs_mp option.  The -lscs_mp option
  27.      directs the linker to use the multi-processor version of the library.
  28.  
  29.      When linking to SCSL with -lscs or -lscs_mp, the default integer size is
  30.      4 bytes (32 bits). Another version of SCSL is available in which integers
  31.      are 8 bytes (64 bits).  This version allows the user access to larger
  32.      memory sizes and helps when porting legacy Cray codes.  It can be loaded
  33.      by using the -lscs_i8 option or the -lscs_i8_mp option. A program may use
  34.      only one of the two versions; 4-byte integer and 8-byte integer library
  35.      calls cannot be mixed.
  36.  
  37. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  38.      SLASDQ computes the singular value decomposition (SVD) of a real (upper
  39.      or lower) bidiagonal matrix with diagonal D and offdiagonal E,
  40.      accumulating the transformations if desired. Letting B denote the input
  41.      bidiagonal matrix, the algorithm computes orthogonal matrices Q and P
  42.      such that B = Q * S * P' (P' denotes the transpose of P). The singular
  43.      values S are overwritten on D.
  44.  
  45.      The input matrix U  is changed to U  * Q  if desired.
  46.      The input matrix VT is changed to P' * VT if desired.
  47.      The input matrix C  is changed to Q' * C  if desired.
  48.  
  49.      See "Computing  Small Singular Values of Bidiagonal Matrices With
  50.      Guaranteed High Relative Accuracy," by J. Demmel and W. Kahan, LAPACK
  51.      Working Note #3, for a detailed description of the algorithm.
  52.  
  53.  
  54. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  55.      UPLO  (input) CHARACTER*1
  56.            On entry, UPLO specifies whether the input bidiagonal matrix is
  57.            upper or lower bidiagonal, and wether it is square are not.  UPLO =
  58.            'U' or 'u'   B is upper bidiagonal.  UPLO = 'L' or 'l'   B is lower
  59.            bidiagonal.
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. SSSSLLLLAAAASSSSDDDDQQQQ((((3333SSSS))))                                                          SSSSLLLLAAAASSSSDDDDQQQQ((((3333SSSS))))
  71.  
  72.  
  73.  
  74.      SQRE  (input) INTEGER
  75.            = 0: then the input matrix is N-by-N.
  76.            = 1: then the input matrix is N-by-(N+1) if UPLU = 'U' and (N+1)-
  77.            by-N if UPLU = 'L'.
  78.  
  79.            The bidiagonal matrix has N = NL + NR + 1 rows and M = N + SQRE >=
  80.            N columns.
  81.  
  82.      N     (input) INTEGER
  83.            On entry, N specifies the number of rows and columns in the matrix.
  84.            N must be at least 0.
  85.  
  86.      NCVT  (input) INTEGER
  87.            On entry, NCVT specifies the number of columns of the matrix VT.
  88.            NCVT must be at least 0.
  89.  
  90.      NRU   (input) INTEGER
  91.            On entry, NRU specifies the number of rows of the matrix U. NRU
  92.            must be at least 0.
  93.  
  94.      NCC   (input) INTEGER
  95.            On entry, NCC specifies the number of columns of the matrix C. NCC
  96.            must be at least 0.
  97.  
  98.      D     (input/output) REAL array, dimension (N)
  99.            On entry, D contains the diagonal entries of the bidiagonal matrix
  100.            whose SVD is desired. On normal exit, D contains the singular
  101.            values in ascending order.
  102.  
  103.      E     (input/output) REAL array.
  104.            dimension is (N-1) if SQRE = 0 and N if SQRE = 1.  On entry, the
  105.            entries of E contain the offdiagonal entries of the bidiagonal
  106.            matrix whose SVD is desired. On normal exit, E will contain 0. If
  107.            the algorithm does not converge, D and E will contain the diagonal
  108.            and superdiagonal entries of a bidiagonal matrix orthogonally
  109.            equivalent to the one given as input.
  110.  
  111.      VT    (input/output) REAL array, dimension (LDVT, NCVT)
  112.            On entry, contains a matrix which on exit has been premultiplied by
  113.            P', dimension N-by-NCVT if SQRE = 0 and (N+1)-by-NCVT if SQRE = 1
  114.            (not referenced if NCVT=0).
  115.  
  116.      LDVT  (input) INTEGER
  117.            On entry, LDVT specifies the leading dimension of VT as declared in
  118.            the calling (sub) program. LDVT must be at least 1. If NCVT is
  119.            nonzero LDVT must also be at least N.
  120.  
  121.      U     (input/output) REAL array, dimension (LDU, N)
  122.            On entry, contains a  matrix which on exit has been postmultiplied
  123.            by Q, dimension NRU-by-N if SQRE = 0 and NRU-by-(N+1) if SQRE = 1
  124.            (not referenced if NRU=0).
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. SSSSLLLLAAAASSSSDDDDQQQQ((((3333SSSS))))                                                          SSSSLLLLAAAASSSSDDDDQQQQ((((3333SSSS))))
  137.  
  138.  
  139.  
  140.      LDU   (input) INTEGER
  141.            On entry, LDU  specifies the leading dimension of U as declared in
  142.            the calling (sub) program. LDU must be at least max( 1, NRU ) .
  143.  
  144.      C     (input/output) REAL array, dimension (LDC, NCC)
  145.            On entry, contains an N-by-NCC matrix which on exit has been
  146.            premultiplied by Q'  dimension N-by-NCC if SQRE = 0 and (N+1)-by-
  147.            NCC if SQRE = 1 (not referenced if NCC=0).
  148.  
  149.      LDC   (input) INTEGER
  150.            On entry, LDC  specifies the leading dimension of C as declared in
  151.            the calling (sub) program. LDC must be at least 1. If NCC is
  152.            nonzero, LDC must also be at least N.
  153.  
  154.      WORK  (workspace) REAL array, dimension (4*N)
  155.            Workspace. Only referenced if one of NCVT, NRU, or NCC is nonzero,
  156.            and if N is at least 2.
  157.  
  158.      INFO  (output) INTEGER
  159.            On exit, a value of 0 indicates a successful exit.  If INFO < 0,
  160.            argument number -INFO is illegal.  If INFO > 0, the algorithm did
  161.            not converge, and INFO specifies how many superdiagonals did not
  162.            converge.
  163.  
  164. FFFFUUUURRRRTTTTHHHHEEEERRRR DDDDEEEETTTTAAAAIIIILLLLSSSS
  165.      Based on contributions by
  166.         Ming Gu and Huan Ren, Computer Science Division, University of
  167.         California at Berkeley, USA
  168.  
  169.  
  170. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  171.      INTRO_LAPACK(3S), INTRO_SCSL(3S)
  172.  
  173.      This man page is available only online.
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.